Reuse-Driven Interprocedural Slicing in the Presence of Pointers and Recursion
نویسندگان
چکیده
Program slicing, a technique to compute the subset of program statements that can affect the value of a program variable at a specific program point, is widely used in tools to support maintenance activities. To be useful for supporting these activities, a slicing technique must be sufficiently precise and efficient. Harrold and Ci propose a method for improving the efficiency of slicing by reusing slicing information for subsequent slicing. This paper presents an interprocedural slicing algorithm that improves the efficiency and precision of Harrold and Ci's algorithm for programs with pointer variables and recursion. Our empirical results show that our improvements can effectively achieve more reuse in slice computation, for programs with pointers, and can significantly reduce the sizes of slices, for programs
منابع مشابه
A new algorithm for the calculation of transitive dependences
Program slicing can be used to aid in a variety of software maintenance activities including code understanding, code testing, debugging, and program reengineering. Program slicing (as well as other program analysis functions including ripple analysis) can be efficiently performed on an internal program representation called a system dependence graph (SDG). This paper will describe a new method...
متن کاملSlicing Pointers and Procedures (abstract)
Program slicing restricts attention the components of a program relevant to evaluation of one expression, the slicing criterion. Our slicer, which explicitly represents the store as an aggregate value is the rst to support arbitrary pointer manipulations and aggregate values, and is faster than more limited techniques. We also improve the asymptotic complexity of slicing in the presence of proc...
متن کاملEecient Flow-sensitive Interprocedural Computation of Pointer-induced Aliases and Side Eeects
We present practical approximation methods for computing interprocedural aliases and side eeects for a program written in a language that includes pointers, reference parameters and recursion. We present the following results: 1) An algorithm for ow-sensitive interprocedural alias analysis which is more precise and eecient than the best inter-procedural method known. 2) An extension of traditio...
متن کاملSeparate Computation of Alias Information fior Reuse
Interprocedural data flow information IS useful for many software testing and analysis techniques, including data flow testing, regression testing, program slicing, and impact analysis. For programs with aliases, these testing and analysis techniques can yield invalid results, unless the data flow information accounts for aliasing effects. Recent research provides algorithms for performing inte...
متن کاملSeparate Computation of Alias Information for Reuse 1
Interprocedural data ow information is useful for many software testing and analysis techniques, including data ow testing, regression testing, program slicing, and impact analysis. For programs with aliases, these testing and analysis techniques can yield invalid results, unless the data ow information accounts for aliasing eeects. Recent research provides algorithms for performing interproced...
متن کامل